<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // obj = {eat(){}} 
        // obj.eat()
        // test().test1().test2().test3().test4()
        // 第一层 返回一个对象
        // 对象中是一个个的方法  
        // 对象中的方法  每一个都要返回对象本身
        function test(){
            return {
                test1(){
                    console.log('我是test1');
                    return this;
                },
                test2(){
                    console.log('我是test2');
                    return this;
                },
                test3(){
                    console.log('我是test3');
                    return this;
                },
                test4(){
                    console.log('我是test4')
                }
            }
        }

        // test 返回 对象 
        // test1是对象的方法  
        // test().test1()
        // test2是对象的方法 
        // 如果想test1().test2()
        // test2必须返回这个对象 才能调用test3 
        // test3必须返回这个对象 才能调用test4
        // test().test1().test2().test3().test4()

        // 初始值 value 是0
        // test().add(10).sub(5).mul(6).div(3).getvalue()
        // 0+((10-5)*6)/3
        // 10 

        function test(){
            let v = 0;
            return {
                add(val){
                    v += val;
                    return this
                },
                sub(val){
                    v -= val;
                    return this
                },
                mul(val){
                    v *= val;
                    return this
                },
                div(val){
                    v /= val;
                    return this
                },
                getvalue(){
                    return v;
                }
            }
        }
        

        let res = test().add(10).sub(5).mul(6).div(3).getvalue();
        alert(res);



    </script>
</body>
</html>